
package Clases;

import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Pavilion
 */
public class Usuario {

    private String denominacion;
    private int id_usuario;
    private int documento;
    private String direccionUs;

    
    public Usuario() { }

    public String getDenominacion() {
        return denominacion;
    }

    public void setDenominacion(String denominacion) {
        this.denominacion =  denominacion;
    }

    public String getDireccionUs() {
        return direccionUs;
    }

    public void setDireccionUs(String direccionUs) {
        this.direccionUs =  direccionUs;
    }
    
    public int getIdUsuario(){
        return id_usuario;
    }

    public void setIdUsuario(int id_usuario){
        this.id_usuario = id_usuario;
    }

    public int getDocumento(){
        return documento;
    }

    public void setDocumento(int documento){
        this.documento = documento;
    }

    public int  login(String usuario, String contrase)
    {
        int status = 1;
        Connection miConexion = ConectarBD.getConnection();
        ResultSet miRs = null;
        String miQuery = "SELECT * FROM usuario WHERE usuario=? and password=?" ;
      
        try
            {PreparedStatement miStm = (PreparedStatement) miConexion.prepareStatement(miQuery);
             miStm.setString(1, usuario);
             miStm.setString(2, contrase);
             miRs = miStm.executeQuery();
             if (miRs.next()){
              this.denominacion = miRs.getString("denominacion");
              this.id_usuario = miRs.getInt("id_usuario");
              this.documento = miRs.getInt("dni");
              this.direccionUs = miRs.getString("direccionUs");
              status = 0;
             }else {
                    status = 1;
                }
            }
            catch (SQLException ex){
            Logger.getLogger(Usuario.class.getName()).log(Level.SEVERE, null, ex);
         }
          return status;
    }

    public int buscarUsuario(String usuario){
        int status = 1;

        Connection miCnx = ConectarBD.getConnection();
        String query = "SELECT * FROM usuario WHERE usuario=?";
        ResultSet miRs = null;
        try {
            PreparedStatement miStm = (PreparedStatement) miCnx.prepareStatement(query);
            miStm.setString(1, usuario);
            miRs = miStm.executeQuery();
            if(miRs.next()) {status = 0;} 
            else status =1;
        } catch (SQLException ex) {
            Logger.getLogger(Usuario.class.getName()).log(Level.SEVERE, null, ex);
        }
       return status;
    }

      public int buscarPersona(int doc){
        int status = 1;

        Connection miCnx = ConectarBD.getConnection();
        String query = "SELECT * FROM usuario WHERE dni=?";
        ResultSet miRs = null;
        try {
            PreparedStatement miStm = (PreparedStatement) miCnx.prepareStatement(query);
            miStm.setInt(1, doc);
            miRs = miStm.executeQuery();
            if(miRs.next()) {status = 0;} 
            else {
                status =1;
            }
        } catch (SQLException ex) {
            Logger.getLogger(Usuario.class.getName()).log(Level.SEVERE, null, ex);
        }
       return status;
    } 
      
    public int insertarUsuario(String nombre, String apellido, String tipo, int documento, String email, String calle, String nro, String piso, String depto, String localidad, String provincia, String pais, String usuario, String pass)
    {
        int status = 0;
        String tipodoc = Normalizar(tipo);
        int encontrado = buscarUsuario(usuario);
        int pers = buscarPersona(documento);
        String denominacion;
        String direccionUs;

        denominacion = apellido+", "+nombre;
        direccionUs = calle+" "+nro;
        
        if (!"".equals(piso)) {
            direccionUs = direccionUs + " - Piso: " + piso;
        }
                
        if (!"".equals(depto)) {
            direccionUs = direccionUs + " - Dpto: " + depto;
        }  
        
        direccionUs = direccionUs + " - " + localidad + " - " + provincia + " - " + pais;
        
        if (pers !=0){
            if (encontrado!=0){
            String query = "INSERT INTO usuario (tipo_doc, dni, denominacion, email, direccionUs, usuario, password) VALUES (?,?,?,?,?,?,?)";
            Connection miCnx = ConectarBD.getConnection();
            try {
                PreparedStatement miStm = (PreparedStatement) miCnx.prepareStatement(query);
                miStm.setString(1, tipodoc);
                miStm.setInt(2, documento);
                miStm.setString(3, denominacion);
                miStm.setString(4, email);               
                miStm.setString(5, direccionUs);
                miStm.setString(6, usuario);
                miStm.setString(7, pass);
                status = miStm.executeUpdate();
            } catch (SQLException ex) {status=3;}
        }else { 
                status = 0;}
        }else { 
            status = 2;
        }
        return status;
        }     
    
    public String Normalizar(String tipo){
       
        String doc = "";
        
        if ("1".equals(tipo)) {
            doc = "DNI";
        }

        if ("2".equals(tipo)) {
            doc = "CI";
        }      
        
        if ("3".equals(tipo)) {
            doc = "LE";
        }  
        
        if ("4".equals(tipo)) {
            doc = "LC";
        }  
        
        if ("5".equals(tipo)) {
            doc = "Pasaporte";
        }       
        
        return doc; 
    }
}

